#include "linklist.h"

// 初始化空单循环链表（不带头结点）
list init_list(void)
{
    return NULL;
}

list new_node(int num)
{
    list new = calloc(1, sizeof(node));
    if(new != NULL)
    {
        new->data = num;
        new->next = new;
    }
    return new;
}

bool is_empty(list head)
{
    return head == NULL;
}

list add_list_tail(list head, list newnode)
{
    // 1. 判定链表是否为空，直接将新节点作为首节点
    if(is_empty(head))
        return newnode;

    // 2. 分成3小步
    list p;
    for(p=head; p->next!=head; p=p->next);
    p->next = newnode;
    newnode->next = head;
    return head;
}

void show(list head)
{
    if(is_empty(head))
        return;

    list p;
    for(p=head; p->next!=head; p=p->next)
        printf("%d\t", p->data);
    printf("%d\n", p->data);
}